home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Tools / ApiHooks 2.2 / examples / ASM / TEST / Test.bat < prev    next >
Encoding:
DOS Batch File  |  2000-04-09  |  4.0 KB  |  142 lines

  1. ;@goto translate
  2.  
  3.  
  4. .586P
  5.  
  6. .MODEL            FLAT, STDCALL
  7.  
  8.    OPTION         CASEMAP: NONE
  9.  
  10.    UNICODE        = 0
  11.    INCLUDE        WINDOWS.inc
  12.    INCLUDE        APIMACRO.mac
  13.  
  14.    INCLUDELIB     iKERNEL32.lib
  15.    INCLUDELIB     iUSER32.lib
  16.  
  17.    INCLUDE        ApiHooks.inc
  18.    INCLUDELIB     iApiHooks.lib
  19.  
  20.  
  21. .DATA?
  22.    OrigMsgBoxA DWORD ?
  23.    OrigMsgBoxW DWORD ?
  24.  
  25.    prinfo    PROCESS_INFORMATION   <>
  26.    stinfo    STARTUPINFO           <>
  27.  
  28.  
  29. .CODE
  30.    TEXTA     KERNEL32,   <KERNEL32.dll/0>
  31.    TEXTA     GetVersion, <GetVersion/0>
  32.  
  33.    TEXTW     Cap,        <Cap.dll/0>
  34.    TEXTW     DllRegSrv,  <DllRegisterServer/0>
  35.  
  36.    TEXT      Test4, <4Test.exe/0>
  37.  
  38.    TEXTA     AlienA,     <Alien.dll/0>
  39.    TEXTW     AlienW,     <Alien.dll/0>
  40.  
  41.  PrimaryThread PROC
  42.    iWin32    GetCurrentProcessId
  43.    MOV       EBX, EAX
  44.  
  45.    iWin32    IsModuleLoadedW, sCap, EBX
  46.    iWin32    LoadAndCallW, sCap, EBX, 1, sDllRegSrv
  47.    iWin32    IsModuleLoadedW, sCap, EBX
  48.    iWin32    UnloadModuleW, sCap, EBX, 10
  49.  
  50.    iWin32    IsModuleLoadedA, sKERNEL32, EBX
  51.    iWin32    LoadAndCallA, sKERNEL32, EBX, 1, sGetVersion
  52.    iWin32    UnloadModuleA, sKERNEL32, EBX, 10
  53.  
  54.    iMOV      EBX, MessageBoxA
  55.    sWin32    EBX, NULL, smmsgA, smTitleA, MB_ICONINFORMATION
  56.    MOV       OrigMsgBoxA, EBX  ;save original API address
  57.  
  58.    iMOV      EBX, MessageBoxW
  59.    sWin32    EBX, NULL, smmsgW, smTitleW, MB_ICONINFORMATION
  60.    MOV       OrigMsgBoxW, EBX  ;save original API address
  61.  
  62.    ;change my (ModuleImport==NULL) import
  63.    iWin32    HookApiA, sUSER32A, sMessageBoxA, HOOK_BY_ADDRESS, NULL, NULL, OFFSET NewMessageBoxA, NULL
  64.    iWin32    MessageBoxA, NULL, smmsgA, smTitleA, MB_ICONINFORMATION
  65.  
  66.    iWin32    HookApiW, sUSER32W, sMessageBoxW, HOOK_BY_ADDRESS, NULL, NULL, OFFSET NewMessageBoxW, NULL
  67.    iWin32    MessageBoxW, NULL, smmsgW, smTitleW, MB_ICONINFORMATION
  68.  
  69.    MOV       ESI, OFFSET stinfo
  70.    SUB       EBP, EBP
  71.    MOV       (STARTUPINFO PTR [ESI]).cb, STARTUPINFO
  72.    iWin32i   CreateProcess,sTest4, EBP,\
  73.                            EBP, EBP, EBP,\
  74.                            CREATE_SUSPENDED,\
  75.                            EBP, EBP,\            
  76.                            ESI, OFFSET prinfo
  77.    TEST      EAX, EAX
  78.    JE          @F
  79.  
  80.    MOV       EBX, prinfo.dwProcessId
  81.  
  82.    iWin32    IsModuleLoadedW, sCap, EBX
  83.    iWin32    LoadAndCallW, sCap, EBX, 1, sDllRegSrv
  84.    iWin32    IsModuleLoadedW, sCap, EBX
  85.    iWin32    UnloadModuleW, sCap, EBX, 10
  86.  
  87.    iWin32    IsModuleLoadedA, sKERNEL32, EBX
  88.    iWin32    LoadAndCallA, sKERNEL32, EBX, 1, sGetVersion
  89.    iWin32    UnloadModuleA, sKERNEL32, EBX, 10
  90.  
  91.    iWin32    EstablishApiHooksA, sAlienA, EBX
  92.    iWin32    EstablishApiHooksW, sAlienW, EBX
  93.    iWin32    UnloadModuleA, sAlienA, EBX, 2
  94.  
  95.    iWin32    ResumeThread, prinfo.hThread
  96.    iWin32    CloseHandle,  prinfo.hProcess
  97.    iWin32    CloseHandle,  prinfo.hThread
  98.    
  99.   @@:
  100.    iWin32    ExitProcess, STATUS_SUCCESS
  101.  PrimaryThread ENDP
  102.  
  103.    TEXTA     mTitleA, <WarningA/0>   
  104.    TEXTA     mmsgA,   <This is illegalA./0>
  105.  
  106.    TEXTW     mTitleW, <WarningW/0>   
  107.    TEXTW     mmsgW,   <This is illegalW./0>
  108.  
  109.  NewMessageBoxA PROC hWnd, lpText, lpCaption, uType
  110.    MOV       EAX, uType
  111.    TEST      EAX, MB_ICONINFORMATION
  112.    JE        @F
  113.    XOR       EAX, MB_ICONINFORMATION OR MB_ICONEXCLAMATION
  114.   @@:
  115.    sWin32    OrigMsgBoxA, hWnd, lpText, lpCaption, EAX
  116.    RET
  117.  NewMessageBoxA ENDP
  118.  
  119.  NewMessageBoxW PROC hWnd, lpText, lpCaption, uType
  120.    MOV       EAX, uType
  121.    TEST      EAX, MB_ICONINFORMATION
  122.    JE        @F
  123.    XOR       EAX, MB_ICONINFORMATION OR MB_ICONEXCLAMATION
  124.   @@:
  125.    sWin32    OrigMsgBoxW, hWnd, lpText, lpCaption, EAX
  126.    RET
  127.  NewMessageBoxW ENDP
  128.  
  129.    TEXTA     USER32A, <USER32.dll/0>
  130.    TEXTA     MessageBoxA, <MessageBoxA/0>
  131.    TEXTW     USER32W, <USER32.dll/0>
  132.    TEXTW     MessageBoxW, <MessageBoxW/0>
  133.  
  134. END PrimaryThread
  135.  
  136. :translate
  137. @echo off
  138. ML    /c /coff /nologo Test.bat
  139. eLINK Test /nologo /optidata /IGNORE:4078 /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text
  140. DEL   Test.obj
  141. PAUSE
  142. CLS